package proyecto.ort.edu.uy.dominio;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "GRUPO")
@SequenceGenerator(name = "GRPUSUARIOS_SEQ", sequenceName = "GRPUSUARIOS_SEQ")
public class GrupoUsuario implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1296614452758665671L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "GRPUSUARIOS_SEQ")
	private Integer idGruposUsuarios;

	private String descripcion;

	@Column(name = "fecha_Creacion")
	@Temporal(TemporalType.TIMESTAMP)
	private Date fechaCreacion;

	@Column(name = "fecha_Modificacion")
	@Temporal(TemporalType.TIMESTAMP)
	private Date fechaModificacion;

	@ManyToMany(mappedBy = "lstGrupoUsuarios")
	private List<Usuario> lstUsuarios;

	@OneToOne()
	@JoinColumn(name = "ID_CREADOR")
	private Usuario usuarioCreador;

	@OneToOne()
	@JoinColumn(name = "ID_COORDINADOR")
	private Usuario usuarioCoordinador;

	public GrupoUsuario() {
		// TODO Auto-generated constructor stub
	}

	public List<Usuario> getLstUsuarios() {
		return lstUsuarios;
	}

	public void setLstUsuarios(List<Usuario> lstUsuarios) {
		this.lstUsuarios = lstUsuarios;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public Date getFechaCreacion() {
		return fechaCreacion;
	}

	public Date getFechaModificacion() {
		return fechaModificacion;
	}

	public Integer getIdGruposUsuarios() {
		return idGruposUsuarios;
	}

	// public List<Usuario> getLstUsuariosGrupo() {
	// return lstUsuariosGrupo;
	// }

	public Usuario getUsuarioCoordinador() {
		return usuarioCoordinador;
	}

	public Usuario getUsuarioCreador() {
		return usuarioCreador;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public void setFechaCreacion(Date fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	public void setFechaModificacion(Date fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public void setIdGruposUsuarios(Integer idGruposUsuarios) {
		this.idGruposUsuarios = idGruposUsuarios;
	}

	// public void setLstUsuariosGrupo(List<Usuario> lstUsuariosGrupo) {
	// this.lstUsuariosGrupo = lstUsuariosGrupo;
	// }

	public void setUsuarioCoordinador(Usuario usuarioCoordinador) {
		this.usuarioCoordinador = usuarioCoordinador;
	}

	public void setUsuarioCreador(Usuario usuarioCreador) {
		this.usuarioCreador = usuarioCreador;
	}

}
